package com.fyl.service.impl;

import com.fyl.dao.UserDao;
import com.fyl.mapper.UserMapper;
import com.fyl.pojo.User;
import com.fyl.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service("userService")
public class UserServiceImpl implements UserService {
    @Autowired//根据类型进行注入，如果同一类型的bean有多个，尝试根据名字进行二次匹配，匹配不成功就会报错
//    @Qualifier("userDao1")//再次结合@autowired一起使用，作用是跟据名称注入相应的bean
   // @Resource(name = "userDao1")
    //@Resource在没有指定name时，
    // 首先根据名称（字段名）注入，如果名称匹配失败，再根据类型注入。
    // 当根据类型注入时，如果类型有多个，会尝试用字段名作为候选bean的名称，如果还是找不到，就会失败。
    private UserDao userDao;

    @Autowired
    private UserMapper userMapper;

    @Autowired
    public void setUserDao2(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void show() {
        System.out.println("userDao = " + userDao);
        List<User> all = userMapper.findAll();
        System.out.println("all = " + all);
    }

//    @Autowired
//    public void xxx(UserDao userDao1) {
//        System.out.println("xxx"+userDao1);
//    }
//
//    @Autowired
//    public void yyy(List<UserDao> list) {
//        System.out.println("yyy"+list);
//
//    }
}
